package com.jml.mapreduce.分组比较器;

import java.io.IOException;
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.NullWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Reducer;

/**
 * 取每个订单的最大金额商品
 */
public class OrderReduce extends Reducer<OrderBean, NullWritable, OrderBean, NullWritable>{



    /**
     *
     * 取每个订单的最高价格
     * @param key：订单信息
     * @param values
     * @param context
     * @throws IOException
     * @throws InterruptedException
     */
    @Override
    protected void reduce(OrderBean key, Iterable<NullWritable> values, Context context) throws IOException, InterruptedException {
        //输出的就是最大的，就是这一组的第一个元素
        //context.write(key,NullWritable.get());

        //全部输出，
        for (NullWritable value: values) {
            //在这个方法里，会序列化新的对象赋值给key,虽然是同一个key，但是里面的值却一直在变化
            context.write(key, NullWritable.get());
        }

        //输出的就是前两个最大的
        /*Iterator<NullWritable> iterator = values.iterator();
        for (int i = 0; i < 2; i++) {
            if (iterator.hasNext()) {
                NullWritable value = iterator.next();
                context.write(key, value);
            }
        }*/


    }
}
